Conventional enterprise applications may be compiled and deployed with a separate workflow layer that is responsible for orchestrating business flow and coordinating services. The workflow layer gives the conventional enterprise application functionality. After an enterprise application is deployed, a customer may desire changes to the functionality, workflow, or services provided by the enterprise application, which are unpredicted during system design. Any changes to the functionality, workflow, or services of the conventional enterprise application require a change to the workflow layer or in granular service layers. In order to make a change to the workflow layer or the granular service layer, the enterprise application must be disabled, recompiled, and redeployed. Changes requiring recompilation of the workflow layer are costly and require a significant amount of time to implement. Costly and time-consuming changes frustrate a customer and may lead the customer to decide against making enterprise application changes unless the changes are very important.
Further, in a conventional enterprise application, any faults in the workflow, implementation or system components may lead to serious errors or system slow down to address the faults. Fault management in modern enterprise applications must be fast and accurate so that no faults occur during normal operation and faults do not seriously burden any users of the enterprise application.
Thus, a business application having flexibility after deployment, good performance, and good fault management is desired for enterprise applications.